<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    //作用域  函数每一次执行都会调用上下文 产生一个环境
    //这个环境就叫做作用域  作用域每调用一次 当下一次该函数调用时，原作用域就会销毁
    // var a = 0, b = 0;
    function A(a) {
        A = function (b) {
          
            console.log(a + b++)
        }

        console.log(a++) //先取值后运算
    }
    A(1)
    A(2)



    //闭包  能够读取其他函数内部变量的函数
    let res = []
    for(var i = 0; i < 10; i++){
        res.push(function(){
            return console.log(i)
        })
    }
    res[0]()
    res[1]()
    res[2]()




    function fun(n,o) {
        console.log(o)
        return {
            fun:function(m){
                return fun(m,n);
            }
        };
    }
    var a = fun(0);  a.fun(1);  a.fun(2);  a.fun(3);
    var b = fun(0).fun(1).fun(2).fun(3);
    var c = fun(0).fun(1);  c.fun(2);  c.fun(3);


    var a = [1, 2, 3],
        b = [1, 2, 3],
        c = [1, 2, 4]
    a ==  b
    a === b
    a >   c
    a >   c
</script>
</html>